package com.zxl.designpattern.behavioral.templatemethod;

/**
 * 法师角色创建器，继承抽象角色创建器
 */
public class MageCreator extends CharacterCreator {
    /**
     * 选择法师的种族，实现父类抽象方法
     */
    @Override
    public void selectRace() {
        System.out.println("精灵族");
    }
    
    /**
     * 分配法师的属性点，智力和智慧优先
     */
    @Override
    public void assignStats() {
        System.out.println("分配智力和精神属性");
    }
    
    /**
     * 为法师装备初始武器和防具
     */
    @Override
    public void equipStartingGear() {
        System.out.println("初始武器法杖和法袍");
    }
    
    /**
     * 给予法师特殊物品，实现父类抽象方法
     */
    @Override
    public void giveSpecialItem() {
        System.out.println("分配2个低级红药水");
    }
    
    /**
     * 覆盖钩子方法，决定是否包含特殊物品
     * @return 是否包含特殊物品
     */
    @Override
    public boolean includeSpecialItem() {
        // 50%概率给予特殊物品
        return Math.random() > 0.5;
    }
}    